home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / cpu / z80gb / opc_cb.h < prev    next >
Text File  |  2000-01-08  |  22KB  |  1,441 lines

  1. #define    RLC_8BIT(x)                \
  2. {                                \
  3.     register UINT8 f;            \
  4.     (x)=(UINT8)(((x)<<1)|((x)>>7));      \
  5.     if( (x)&1 )                    \
  6.         f=FLAG_C;                \
  7.     else                        \
  8.         f=0;                    \
  9.     if( (x)==0 )                \
  10.         f|=FLAG_Z;                \
  11.     Regs.b.F=f;            \
  12. }
  13.  
  14. #define    RL_8BIT(x)                \
  15. {                                \
  16.     register UINT8 r;            \
  17.     r=((x)&0x80)?FLAG_C:0;        \
  18.     (x)=(UINT8)(((x)<<1)|((Regs.b.F&FLAG_C)?1:0));     \
  19.     if( (x)==0 )                \
  20.         r|=FLAG_Z;                \
  21.     Regs.b.F=r;            \
  22. }
  23.  
  24. #define    RRC_8BIT(x)                \
  25. {                                \
  26.     register UINT8 f;            \
  27.     (x)=(UINT8)(((x)>>1)|((x)<<7));      \
  28.     if( (x)&0x80 )                \
  29.         f=FLAG_C;                \
  30.     else                        \
  31.         f=0;                    \
  32.     if( (x)==0 )                \
  33.         f|=FLAG_Z;                \
  34.     Regs.b.F=f;            \
  35. }
  36.  
  37. #define    RR_8BIT(x)                \
  38. {                                \
  39.     register UINT8 r;            \
  40.     r=((x)&1)?FLAG_C:0;            \
  41.     (x)=(UINT8)(((x)>>1)|((Regs.b.F&FLAG_C)?0x80:0));     \
  42.     if( (x)==0 )                \
  43.         r|=FLAG_Z;                \
  44.     Regs.b.F=r;            \
  45. }
  46.  
  47. #define    SLA_8BIT(x)                \
  48. {                                \
  49.     register UINT8 f;            \
  50.     if( (x)&0x80 )                \
  51.         f=FLAG_C;                \
  52.     else                        \
  53.         f=0;                    \
  54.     (x)<<=1;                    \
  55.     if( (x)==0 )                \
  56.         f|=FLAG_Z;                \
  57.     Regs.b.F=f;            \
  58. }
  59.  
  60. #define    SRA_8BIT(x)                \
  61. {                                \
  62.     register UINT8 f;            \
  63.     if( (x)&1 )                    \
  64.         f=FLAG_C;                \
  65.     else                        \
  66.         f=0;                    \
  67.     (x)=(UINT8)(((char)(x))>>1);     \
  68.     if( (x)==0 )                \
  69.         f|=FLAG_Z;                \
  70.     Regs.b.F=f;            \
  71. }
  72.  
  73. #define    SWAP_8BIT(x)            \
  74.     (x)=(UINT8)(((x)>>4)|((x)<<4));      \
  75.     if( (x)==0 )                \
  76.         Regs.b.F=FLAG_Z;    \
  77.     else                        \
  78.         Regs.b.F=0;
  79.  
  80.  
  81. #define    SRL_8BIT(x)                \
  82. {                                \
  83.     register UINT8 f;            \
  84.     if( (x)&1 )                    \
  85.         f=FLAG_C;                \
  86.     else                        \
  87.         f=0;                    \
  88.     (x)>>=1;                    \
  89.     if( (x)==0 )                \
  90.         f|=FLAG_Z;                \
  91.     Regs.b.F=f;            \
  92. }
  93.  
  94. #define    BIT_8BIT(n,x)            \
  95.     if( (x)&(1<<(n)) )            \
  96.         Regs.b.F=(UINT8)(FLAG_H|(Regs.b.F&FLAG_C));  \
  97.     else                        \
  98.         Regs.b.F=(UINT8)(FLAG_Z|FLAG_H|(Regs.b.F&FLAG_C));
  99.  
  100. #define    RES_8BIT(n,x)    (x)&=~(1<<(n));
  101.  
  102. #define    SET_8BIT(n,x)    (x)|=(1<<(n));
  103.  
  104.  
  105. case 0x00:
  106.   /*      RLC B */
  107.  
  108.   RLC_8BIT (Regs.b.B)
  109.   break;
  110. case 0x01:
  111.   /*      RLC C */
  112.  
  113.   RLC_8BIT (Regs.b.C)
  114.   break;
  115. case 0x02:
  116.   /*      RLC D */
  117.  
  118.   RLC_8BIT (Regs.b.D)
  119.   break;
  120. case 0x03:
  121.   /*      RLC E */
  122.  
  123.   RLC_8BIT (Regs.b.E)
  124.   break;
  125. case 0x04:
  126.   /*      RLC H */
  127.  
  128.   RLC_8BIT (Regs.b.H)
  129.   break;
  130. case 0x05:
  131.   /*      RLC L */
  132.  
  133.   RLC_8BIT (Regs.b.L)
  134.   break;
  135. case 0x06:
  136.   /*      RLC (HL) */
  137.  
  138.   x = mem_ReadByte (Regs.w.HL);
  139.   RLC_8BIT (x)
  140.   mem_WriteByte (Regs.w.HL, x);
  141.   break;
  142. case 0x07:
  143.   /*      RLC A */
  144.  
  145.   RLC_8BIT (Regs.b.A)
  146.   break;
  147. case 0x08:
  148.   /*      RRC B */
  149.  
  150.   RRC_8BIT (Regs.b.B)
  151.   break;
  152. case 0x09:
  153.   /*      RRC C */
  154.  
  155.   RRC_8BIT (Regs.b.C)
  156.   break;
  157. case 0x0A:
  158.   /*      RRC D */
  159.  
  160.   RRC_8BIT (Regs.b.D)
  161.   break;
  162. case 0x0B:
  163.   /*      RRC E */
  164.  
  165.   RRC_8BIT (Regs.b.E)
  166.   break;
  167. case 0x0C:
  168.   /*      RRC H */
  169.  
  170.   RRC_8BIT (Regs.b.H)
  171.   break;
  172. case 0x0D:
  173.   /*      RRC L */
  174.  
  175.   RRC_8BIT (Regs.b.L)
  176.   break;
  177. case 0x0E:
  178.   /*      RRC (HL) */
  179.  
  180.   x = mem_ReadByte (Regs.w.HL);
  181.   RRC_8BIT (x)
  182.   mem_WriteByte (Regs.w.HL, x);
  183.   break;
  184. case 0x0F:
  185.   /*      RRC A */
  186.  
  187.   RRC_8BIT (Regs.b.A)
  188.   break;
  189. case 0x10:
  190.   /*      RL B */
  191.  
  192.   RL_8BIT (Regs.b.B)
  193.   break;
  194. case 0x11:
  195.   /*      RL C */
  196.  
  197.   RL_8BIT (Regs.b.C)
  198.   break;
  199. case 0x12:
  200.   /*      RL D */
  201.  
  202.   RL_8BIT (Regs.b.D)
  203.   break;
  204. case 0x13:
  205.   /*      RL E */
  206.  
  207.   RL_8BIT (Regs.b.E)
  208.   break;
  209. case 0x14:
  210.   /*      RL H */
  211.  
  212.   RL_8BIT (Regs.b.H)
  213.   break;
  214. case 0x15:
  215.   /*      RL L */
  216.  
  217.   RL_8BIT (Regs.b.L)
  218.   break;
  219. case 0x16:
  220.   /*      RL (HL) */
  221.  
  222.   x = mem_ReadByte (Regs.w.HL);
  223.   RL_8BIT (x)
  224.   mem_WriteByte (Regs.w.HL, x);
  225.   break;
  226. case 0x17:
  227.   /*      RL A */
  228.  
  229.   RL_8BIT (Regs.b.A)
  230.   break;
  231. case 0x18:
  232.   /*      RR B */
  233.  
  234.   RR_8BIT (Regs.b.B)
  235.   break;
  236. case 0x19:
  237.   /*      RR C */
  238.  
  239.   RR_8BIT (Regs.b.C)
  240.   break;
  241. case 0x1A:
  242.   /*      RR D */
  243.  
  244.   RR_8BIT (Regs.b.D)
  245.   break;
  246. case 0x1B:
  247.   /*      RR E */
  248.  
  249.   RR_8BIT (Regs.b.E)
  250.   break;
  251. case 0x1C:
  252.   /*      RR H */
  253.  
  254.   RR_8BIT (Regs.b.H)
  255.   break;
  256. case 0x1D:
  257.   /*      RR L */
  258.  
  259.   RR_8BIT (Regs.b.L)
  260.   break;
  261. case 0x1E:
  262.   /*      RR (HL) */
  263.  
  264.   x = mem_ReadByte (Regs.w.HL);
  265.   RR_8BIT (x)
  266.   mem_WriteByte (Regs.w.HL, x);
  267.   break;
  268. case 0x1F:
  269.   /*      RR A */
  270.  
  271.   RR_8BIT (Regs.b.A)
  272.   break;
  273. case 0x20:
  274.   /*      SLA B */
  275.  
  276.   SLA_8BIT (Regs.b.B)
  277.   break;
  278. case 0x21:
  279.   /*      SLA C */
  280.  
  281.   SLA_8BIT (Regs.b.C)
  282.   break;
  283. case 0x22:
  284.   /*      SLA D */
  285.  
  286.   SLA_8BIT (Regs.b.D)
  287.   break;
  288. case 0x23:
  289.   /*      SLA E */
  290.  
  291.   SLA_8BIT (Regs.b.E)
  292.   break;
  293. case 0x24:
  294.   /*      SLA H */
  295.  
  296.   SLA_8BIT (Regs.b.H)
  297.   break;
  298. case 0x25:
  299.   /*      SLA L */
  300.  
  301.   SLA_8BIT (Regs.b.L)
  302.   break;
  303. case 0x26:
  304.   /*      SLA (HL) */
  305.  
  306.   x = mem_ReadByte (Regs.w.HL);
  307.   SLA_8BIT (x)
  308.   mem_WriteByte (Regs.w.HL, x);
  309.   break;
  310. case 0x27:
  311.   /*      SLA A */
  312.  
  313.   SLA_8BIT (Regs.b.A)
  314.   break;
  315. case 0x28:
  316.   /*      SRA B */
  317.  
  318.   SRA_8BIT (Regs.b.B)
  319.   break;
  320. case 0x29:
  321.   /*      SRA C */
  322.  
  323.   SRA_8BIT (Regs.b.C)
  324.   break;
  325. case 0x2A:
  326.   /*      SRA D */
  327.  
  328.   SRA_8BIT (Regs.b.D)
  329.   break;
  330. case 0x2B:
  331.   /*      SRA E */
  332.  
  333.   SRA_8BIT (Regs.b.E)
  334.   break;
  335. case 0x2C:
  336.   /*      SRA H */
  337.  
  338.   SRA_8BIT (Regs.b.H)
  339.   break;
  340. case 0x2D:
  341.   /*      SRA L */
  342.  
  343.   SRA_8BIT (Regs.b.L)
  344.   break;
  345. case 0x2E:
  346.   /*      SRA (HL) */
  347.  
  348.   x = mem_ReadByte (Regs.w.HL);
  349.   SRA_8BIT (x)
  350.   mem_WriteByte (Regs.w.HL, x);
  351.   break;
  352. case 0x2F:
  353.   /*      SRA A */
  354.  
  355.   SRA_8BIT (Regs.b.A)
  356.   break;
  357. case 0x30:
  358.   /*      SWAP B */
  359.  
  360.   SWAP_8BIT (Regs.b.B)
  361.   break;
  362. case 0x31:
  363.   /*      SWAP C */
  364.  
  365.   SWAP_8BIT (Regs.b.C)
  366.   break;
  367. case 0x32:
  368.   /*      SWAP D */
  369.  
  370.   SWAP_8BIT (Regs.b.D)
  371.   break;
  372. case 0x33:
  373.   /*      SWAP E */
  374.  
  375.   SWAP_8BIT (Regs.b.E)
  376.   break;
  377. case 0x34:
  378.   /*      SWAP H */
  379.  
  380.   SWAP_8BIT (Regs.b.H)
  381.   break;
  382. case 0x35:
  383.   /*      SWAP L */
  384.  
  385.   SWAP_8BIT (Regs.b.L)
  386.   break;
  387. case 0x36:
  388.   /*      SWAP (HL) */
  389.  
  390.   x = mem_ReadByte (Regs.w.HL);
  391.   SWAP_8BIT (x)
  392.   mem_WriteByte (Regs.w.HL, x);
  393.   break;
  394. case 0x37:
  395.   /*      SWAP A */
  396.  
  397.   SWAP_8BIT (Regs.b.A)
  398.   break;
  399. case 0x38:
  400.   /*      SRL B */
  401.  
  402.   SRL_8BIT (Regs.b.B)
  403.   break;
  404. case 0x39:
  405.   /*      SRL C */
  406.  
  407.   SRL_8BIT (Regs.b.C)
  408.   break;
  409. case 0x3A:
  410.   /*      SRL D */
  411.  
  412.   SRL_8BIT (Regs.b.D)
  413.   break;
  414. case 0x3B:
  415.   /*      SRL E */
  416.  
  417.   SRL_8BIT (Regs.b.E)
  418.   break;
  419. case 0x3C:
  420.   /*      SRL H */
  421.  
  422.   SRL_8BIT (Regs.b.H)
  423.   break;
  424. case 0x3D:
  425.   /*      SRL L */
  426.  
  427.   SRL_8BIT (Regs.b.L)
  428.   break;
  429. case 0x3E:
  430.   /*      SRL (HL) */
  431.  
  432.   x = mem_ReadByte (Regs.w.HL);
  433.   SRL_8BIT (x)
  434.   mem_WriteByte (Regs.w.HL, x);
  435.   break;
  436. case 0x3F:
  437.   /*      SRL A */
  438.  
  439.   SRL_8BIT (Regs.b.A)
  440.   break;
  441. case 0x40:
  442.   /*      BIT 0,B */
  443.  
  444.   BIT_8BIT (0, Regs.b.B)
  445.   break;
  446. case 0x41:
  447.   /*      BIT 0,C */
  448.  
  449.   BIT_8BIT (0, Regs.b.C)
  450.   break;
  451. case 0x42:
  452.   /*      BIT 0,D */
  453.  
  454.   BIT_8BIT (0, Regs.b.D)
  455.   break;
  456. case 0x43:
  457.   /*      BIT 0,E */
  458.  
  459.   BIT_8BIT (0, Regs.b.E)
  460.   break;
  461. case 0x44:
  462.   /*      BIT 0,H */
  463.  
  464.   BIT_8BIT (0, Regs.b.H)
  465.   break;
  466. case 0x45:
  467.   /*      BIT 0,L */
  468.  
  469.   BIT_8BIT (0, Regs.b.L)
  470.   break;
  471. case 0x46:
  472.   /*      BIT 0,(HL) */
  473.  
  474.   x = mem_ReadByte (Regs.w.HL);
  475.   BIT_8BIT (0, x)
  476.   break;
  477. case 0x47:
  478.   /*      BIT 0,A */
  479.  
  480.   BIT_8BIT (0, Regs.b.A)
  481.   break;
  482. case 0x48:
  483.   /*      BIT 1,B */
  484.  
  485.   BIT_8BIT (1, Regs.b.B)
  486.   break;
  487. case 0x49:
  488.   /*      BIT 1,C */
  489.  
  490.   BIT_8BIT (1, Regs.b.C)
  491.   break;
  492. case 0x4A:
  493.   /*      BIT 1,D */
  494.  
  495.   BIT_8BIT (1, Regs.b.D)
  496.   break;
  497. case 0x4B:
  498.   /*      BIT 1,E */
  499.  
  500.   BIT_8BIT (1, Regs.b.E)
  501.   break;
  502. case 0x4C:
  503.   /*      BIT 1,H */
  504.  
  505.   BIT_8BIT (1, Regs.b.H)
  506.   break;
  507. case 0x4D:
  508.   /*      BIT 1,L */
  509.  
  510.   BIT_8BIT (1, Regs.b.L)
  511.   break;
  512. case 0x4E:
  513.   /*      BIT 1,(HL) */
  514.  
  515.   x = mem_ReadByte (Regs.w.HL);
  516.   BIT_8BIT (1, x)
  517.   break;
  518. case 0x4F:
  519.   /*      BIT 1,A */
  520.  
  521.   BIT_8BIT (1, Regs.b.A)
  522.   break;
  523. case 0x50:
  524.   /*      BIT 2,B */
  525.  
  526.   BIT_8BIT (2, Regs.b.B)
  527.   break;
  528. case 0x51:
  529.   /*      BIT 2,C */
  530.  
  531.   BIT_8BIT (2, Regs.b.C)
  532.   break;
  533. case 0x52:
  534.   /*      BIT 2,D */
  535.  
  536.   BIT_8BIT (2, Regs.b.D)
  537.   break;
  538. case 0x53:
  539.   /*      BIT 2,E */
  540.  
  541.   BIT_8BIT (2, Regs.b.E)
  542.   break;
  543. case 0x54:
  544.   /*      BIT 2,H */
  545.  
  546.   BIT_8BIT (2, Regs.b.H)
  547.   break;
  548. case 0x55:
  549.   /*      BIT 2,L */
  550.  
  551.   BIT_8BIT (2, Regs.b.L)
  552.   break;
  553. case 0x56:
  554.   /*      BIT 2,(HL) */
  555.  
  556.   x = mem_ReadByte (Regs.w.HL);
  557.   BIT_8BIT (2, x)
  558.   break;
  559. case 0x57:
  560.   /*      BIT 2,A */
  561.  
  562.   BIT_8BIT (2, Regs.b.A)
  563.   break;
  564. case 0x58:
  565.   /*      BIT 3,B */
  566.  
  567.   BIT_8BIT (3, Regs.b.B)
  568.   break;
  569. case 0x59:
  570.   /*      BIT 3,C */
  571.  
  572.   BIT_8BIT (3, Regs.b.C)
  573.   break;
  574. case 0x5A:
  575.   /*      BIT 3,D */
  576.  
  577.   BIT_8BIT (3, Regs.b.D)
  578.   break;
  579. case 0x5B:
  580.   /*      BIT 3,E */
  581.  
  582.   BIT_8BIT (3, Regs.b.E)
  583.   break;
  584. case 0x5C:
  585.   /*      BIT 3,H */
  586.  
  587.   BIT_8BIT (3, Regs.b.H)
  588.   break;
  589. case 0x5D:
  590.   /*      BIT 3,L */
  591.  
  592.   BIT_8BIT (3, Regs.b.L)
  593.   break;
  594. case 0x5E:
  595.   /*      BIT 3,(HL) */
  596.  
  597.   x = mem_ReadByte (Regs.w.HL);
  598.   BIT_8BIT (3, x)
  599.   break;
  600. case 0x5F:
  601.   /*      BIT 3,A */
  602.  
  603.   BIT_8BIT (3, Regs.b.A)
  604.   break;
  605. case 0x60:
  606.   /*      BIT 4,B */
  607.  
  608.   BIT_8BIT (4, Regs.b.B)
  609.   break;
  610. case 0x61:
  611.   /*      BIT 4,C */
  612.  
  613.   BIT_8BIT (4, Regs.b.C)
  614.   break;
  615. case 0x62:
  616.   /*      BIT 4,D */
  617.  
  618.   BIT_8BIT (4, Regs.b.D)
  619.   break;
  620. case 0x63:
  621.   /*      BIT 4,E */
  622.  
  623.   BIT_8BIT (4, Regs.b.E)
  624.   break;
  625. case 0x64:
  626.   /*      BIT 4,H */
  627.  
  628.   BIT_8BIT (4, Regs.b.H)
  629.   break;
  630. case 0x65:
  631.   /*      BIT 4,L */
  632.  
  633.   BIT_8BIT (4, Regs.b.L)
  634.   break;
  635. case 0x66:
  636.   /*      BIT 4,(HL) */
  637.  
  638.   x = mem_ReadByte (Regs.w.HL);
  639.   BIT_8BIT (4, x)
  640.   break;
  641. case 0x67:
  642.   /*      BIT 4,A */
  643.  
  644.   BIT_8BIT (4, Regs.b.A)
  645.   break;
  646. case 0x68:
  647.   /*      BIT 5,B */
  648.  
  649.   BIT_8BIT (5, Regs.b.B)
  650.   break;
  651. case 0x69:
  652.   /*      BIT 5,C */
  653.  
  654.   BIT_8BIT (5, Regs.b.C)
  655.   break;
  656. case 0x6A:
  657.   /*      BIT 5,D */
  658.  
  659.   BIT_8BIT (5, Regs.b.D)
  660.   break;
  661. case 0x6B:
  662.   /*      BIT 5,E */
  663.  
  664.   BIT_8BIT (5, Regs.b.E)
  665.   break;
  666. case 0x6C:
  667.   /*      BIT 5,H */
  668.  
  669.   BIT_8BIT (5, Regs.b.H)
  670.   break;
  671. case 0x6D:
  672.   /*      BIT 5,L */
  673.  
  674.   BIT_8BIT (5, Regs.b.L)
  675.   break;
  676. case 0x6E:
  677.   /*      BIT 5,(HL) */
  678.  
  679.   x = mem_ReadByte (Regs.w.HL);
  680.   BIT_8BIT (5, x)
  681.   break;
  682. case 0x6F:
  683.   /*      BIT 5,A */
  684.  
  685.   BIT_8BIT (5, Regs.b.A)
  686.   break;
  687. case 0x70:
  688.   /*      BIT 6,B */
  689.  
  690.   BIT_8BIT (6, Regs.b.B)
  691.   break;
  692. case 0x71:
  693.   /*      BIT 6,C */
  694.  
  695.   BIT_8BIT (6, Regs.b.C)
  696.   break;
  697. case 0x72:
  698.   /*      BIT 6,D */
  699.  
  700.   BIT_8BIT (6, Regs.b.D)
  701.   break;
  702. case 0x73:
  703.   /*      BIT 6,E */
  704.  
  705.   BIT_8BIT (6, Regs.b.E)
  706.   break;
  707. case 0x74:
  708.   /*      BIT 6,H */
  709.  
  710.   BIT_8BIT (6, Regs.b.H)
  711.   break;
  712. case 0x75:
  713.   /*      BIT 6,L */
  714.  
  715.   BIT_8BIT (6, Regs.b.L)
  716.   break;
  717. case 0x76:
  718.   /*      BIT 6,(HL) */
  719.  
  720.   x = mem_ReadByte (Regs.w.HL);
  721.   BIT_8BIT (6, x)
  722.   break;
  723. case 0x77:
  724.   /*      BIT 6,A */
  725.  
  726.   BIT_8BIT (6, Regs.b.A)
  727.   break;
  728. case 0x78:
  729.   /*      BIT 7,B */
  730.  
  731.   BIT_8BIT (7, Regs.b.B)
  732.   break;
  733. case 0x79:
  734.   /*      BIT 7,C */
  735.  
  736.   BIT_8BIT (7, Regs.b.C)
  737.   break;
  738. case 0x7A:
  739.   /*      BIT 7,D */
  740.  
  741.   BIT_8BIT (7, Regs.b.D)
  742.   break;
  743. case 0x7B:
  744.   /*      BIT 7,E */
  745.  
  746.   BIT_8BIT (7, Regs.b.E)
  747.   break;
  748. case 0x7C:
  749.   /*      BIT 7,H */
  750.  
  751.   BIT_8BIT (7, Regs.b.H)
  752.   break;
  753. case 0x7D:
  754.   /*      BIT 7,L */
  755.  
  756.   BIT_8BIT (7, Regs.b.L)
  757.   break;
  758. case 0x7E:
  759.   /*      BIT 7,(HL) */
  760.  
  761.   x = mem_ReadByte (Regs.w.HL);
  762.   BIT_8BIT (7, x)
  763.   break;
  764. case 0x7F:
  765.   /*      BIT 7,A */
  766.  
  767.   BIT_8BIT (7, Regs.b.A)
  768.   break;
  769. case 0x80:
  770.   /*      RES 0,B */
  771.  
  772.   RES_8BIT (0, Regs.b.B)
  773.   break;
  774. case 0x81:
  775.   /*      RES 0,C */
  776.  
  777.   RES_8BIT (0, Regs.b.C)
  778.   break;
  779. case 0x82:
  780.   /*      RES 0,D */
  781.  
  782.   RES_8BIT (0, Regs.b.D)
  783.   break;
  784. case 0x83:
  785.   /*      RES 0,E */
  786.  
  787.   RES_8BIT (0, Regs.b.E)
  788.   break;
  789. case 0x84:
  790.   /*      RES 0,H */
  791.  
  792.   RES_8BIT (0, Regs.b.H)
  793.   break;
  794. case 0x85:
  795.   /*      RES 0,L */
  796.  
  797.   RES_8BIT (0, Regs.b.L)
  798.   break;
  799. case 0x86:
  800.   /*      RES 0,(HL) */
  801.  
  802.   x = mem_ReadByte (Regs.w.HL);
  803.   RES_8BIT (0, x)
  804.   mem_WriteByte (Regs.w.HL, x);
  805.   break;
  806. case 0x87:
  807.   /*      RES 0,A */
  808.  
  809.   RES_8BIT (0, Regs.b.A)
  810.   break;
  811. case 0x88:
  812.   /*      RES 1,B */
  813.  
  814.   RES_8BIT (1, Regs.b.B)
  815.   break;
  816. case 0x89:
  817.   /*      RES 1,C */
  818.  
  819.   RES_8BIT (1, Regs.b.C)
  820.   break;
  821. case 0x8A:
  822.   /*      RES 1,D */
  823.  
  824.   RES_8BIT (1, Regs.b.D)
  825.   break;
  826. case 0x8B:
  827.   /*      RES 1,E */
  828.  
  829.   RES_8BIT (1, Regs.b.E)
  830.   break;
  831. case 0x8C:
  832.   /*      RES 1,H */
  833.  
  834.   RES_8BIT (1, Regs.b.H)
  835.   break;
  836. case 0x8D:
  837.   /*      RES 1,L */
  838.  
  839.   RES_8BIT (1, Regs.b.L)
  840.   break;
  841. case 0x8E:
  842.   /*      RES 1,(HL) */
  843.  
  844.   x = mem_ReadByte (Regs.w.HL);
  845.   RES_8BIT (1, x)
  846.   mem_WriteByte (Regs.w.HL, x);
  847.   break;
  848. case 0x8F:
  849.   /*      RES 1,A */
  850.  
  851.   RES_8BIT (1, Regs.b.A)
  852.   break;
  853. case 0x90:
  854.   /*      RES 2,B */
  855.  
  856.   RES_8BIT (2, Regs.b.B)
  857.   break;
  858. case 0x91:
  859.   /*      RES 2,C */
  860.  
  861.   RES_8BIT (2, Regs.b.C)
  862.   break;
  863. case 0x92:
  864.   /*      RES 2,D */
  865.  
  866.   RES_8BIT (2, Regs.b.D)
  867.   break;
  868. case 0x93:
  869.   /*      RES 2,E */
  870.  
  871.   RES_8BIT (2, Regs.b.E)
  872.   break;
  873. case 0x94:
  874.   /*      RES 2,H */
  875.  
  876.   RES_8BIT (2, Regs.b.H)
  877.   break;
  878. case 0x95:
  879.   /*      RES 2,L */
  880.  
  881.   RES_8BIT (2, Regs.b.L)
  882.   break;
  883. case 0x96:
  884.   /*      RES 2,(HL) */
  885.  
  886.   x = mem_ReadByte (Regs.w.HL);
  887.   RES_8BIT (2, x)
  888.   mem_WriteByte (Regs.w.HL, x);
  889.   break;
  890. case 0x97:
  891.   /*      RES 2,A */
  892.  
  893.   RES_8BIT (2, Regs.b.A)
  894.   break;
  895. case 0x98:
  896.   /*      RES 3,B */
  897.  
  898.   RES_8BIT (3, Regs.b.B)
  899.   break;
  900. case 0x99:
  901.   /*      RES 3,C */
  902.  
  903.   RES_8BIT (3, Regs.b.C)
  904.   break;
  905. case 0x9A:
  906.   /*      RES 3,D */
  907.  
  908.   RES_8BIT (3, Regs.b.D)
  909.   break;
  910. case 0x9B:
  911.   /*      RES 3,E */
  912.  
  913.   RES_8BIT (3, Regs.b.E)
  914.   break;
  915. case 0x9C:
  916.   /*      RES 3,H */
  917.  
  918.   RES_8BIT (3, Regs.b.H)
  919.   break;
  920. case 0x9D:
  921.   /*      RES 3,L */
  922.  
  923.   RES_8BIT (3, Regs.b.L)
  924.   break;
  925. case 0x9E:
  926.   /*      RES 3,(HL) */
  927.  
  928.   x = mem_ReadByte (Regs.w.HL);
  929.   RES_8BIT (3, x)
  930.   mem_WriteByte (Regs.w.HL, x);
  931.   break;
  932. case 0x9F:
  933.   /*      RES 3,A */
  934.  
  935.   RES_8BIT (3, Regs.b.A)
  936.   break;
  937. case 0xA0:
  938.   /*      RES 4,B */
  939.  
  940.   RES_8BIT (4, Regs.b.B)
  941.   break;
  942. case 0xA1:
  943.   /*      RES 4,C */
  944.  
  945.   RES_8BIT (4, Regs.b.C)
  946.   break;
  947. case 0xA2:
  948.   /*      RES 4,D */
  949.  
  950.   RES_8BIT (4, Regs.b.D)
  951.   break;
  952. case 0xA3:
  953.   /*      RES 4,E */
  954.  
  955.   RES_8BIT (4, Regs.b.E)
  956.   break;
  957. case 0xA4:
  958.   /*      RES 4,H */
  959.  
  960.   RES_8BIT (4, Regs.b.H)
  961.   break;
  962. case 0xA5:
  963.   /*      RES 4,L */
  964.  
  965.   RES_8BIT (4, Regs.b.L)
  966.   break;
  967. case 0xA6:
  968.   /*      RES 4,(HL) */
  969.  
  970.   x = mem_ReadByte (Regs.w.HL);
  971.   RES_8BIT (4, x)
  972.   mem_WriteByte (Regs.w.HL, x);
  973.   break;
  974. case 0xA7:
  975.   /*      RES 4,A */
  976.  
  977.   RES_8BIT (4, Regs.b.A)
  978.   break;
  979. case 0xA8:
  980.   /*      RES 5,B */
  981.  
  982.   RES_8BIT (5, Regs.b.B)
  983.   break;
  984. case 0xA9:
  985.   /*      RES 5,C */
  986.  
  987.   RES_8BIT (5, Regs.b.C)
  988.   break;
  989. case 0xAA:
  990.   /*      RES 5,D */
  991.  
  992.   RES_8BIT (5, Regs.b.D)
  993.   break;
  994. case 0xAB:
  995.   /*      RES 5,E */
  996.  
  997.   RES_8BIT (5, Regs.b.E)
  998.   break;
  999. case 0xAC:
  1000.   /*      RES 5,H */
  1001.  
  1002.   RES_8BIT (5, Regs.b.H)
  1003.   break;
  1004. case 0xAD:
  1005.   /*      RES 5,L */
  1006.  
  1007.   RES_8BIT (5, Regs.b.L)
  1008.   break;
  1009. case 0xAE:
  1010.   /*      RES 5,(HL) */
  1011.  
  1012.   x = mem_ReadByte (Regs.w.HL);
  1013.   RES_8BIT (5, x)
  1014.   mem_WriteByte (Regs.w.HL, x);
  1015.   break;
  1016. case 0xAF:
  1017.   /*      RES 5,A */
  1018.  
  1019.   RES_8BIT (5, Regs.b.A)
  1020.   break;
  1021. case 0xB0:
  1022.   /*      RES 6,B */
  1023.  
  1024.   RES_8BIT (6, Regs.b.B)
  1025.   break;
  1026. case 0xB1:
  1027.   /*      RES 6,C */
  1028.  
  1029.   RES_8BIT (6, Regs.b.C)
  1030.   break;
  1031. case 0xB2:
  1032.   /*      RES 6,D */
  1033.  
  1034.   RES_8BIT (6, Regs.b.D)
  1035.   break;
  1036. case 0xB3:
  1037.   /*      RES 6,E */
  1038.  
  1039.   RES_8BIT (6, Regs.b.E)
  1040.   break;
  1041. case 0xB4:
  1042.   /*      RES 6,H */
  1043.  
  1044.   RES_8BIT (6, Regs.b.H)
  1045.   break;
  1046. case 0xB5:
  1047.   /*      RES 6,L */
  1048.  
  1049.   RES_8BIT (6, Regs.b.L)
  1050.   break;
  1051. case 0xB6:
  1052.   /*      RES 6,(HL) */
  1053.  
  1054.   x = mem_ReadByte (Regs.w.HL);
  1055.   RES_8BIT (6, x)
  1056.   mem_WriteByte (Regs.w.HL, x);
  1057.   break;
  1058. case 0xB7:
  1059.   /*      RES 6,A */
  1060.  
  1061.   RES_8BIT (6, Regs.b.A)
  1062.   break;
  1063. case 0xB8:
  1064.   /*      RES 7,B */
  1065.  
  1066.   RES_8BIT (7, Regs.b.B)
  1067.   break;
  1068. case 0xB9:
  1069.   /*      RES 7,C */
  1070.  
  1071.   RES_8BIT (7, Regs.b.C)
  1072.   break;
  1073. case 0xBA:
  1074.   /*      RES 7,D */
  1075.  
  1076.   RES_8BIT (7, Regs.b.D)
  1077.   break;
  1078. case 0xBB:
  1079.   /*      RES 7,E */
  1080.  
  1081.   RES_8BIT (7, Regs.b.E)
  1082.   break;
  1083. case 0xBC:
  1084.   /*      RES 7,H */
  1085.  
  1086.   RES_8BIT (7, Regs.b.H)
  1087.   break;
  1088. case 0xBD:
  1089.   /*      RES 7,L */
  1090.  
  1091.   RES_8BIT (7, Regs.b.L)
  1092.   break;
  1093. case 0xBE:
  1094.   /*      RES 7,(HL) */
  1095.  
  1096.   x = mem_ReadByte (Regs.w.HL);
  1097.   RES_8BIT (7, x)
  1098.   mem_WriteByte (Regs.w.HL, x);
  1099.   break;
  1100. case 0xBF:
  1101.   /*      RES 7,A */
  1102.  
  1103.   RES_8BIT (7, Regs.b.A)
  1104.   break;
  1105. case 0xC0:
  1106.   /*      SET 0,B */
  1107.  
  1108.   SET_8BIT (0, Regs.b.B)
  1109.   break;
  1110. case 0xC1:
  1111.   /*      SET 0,C */
  1112.  
  1113.   SET_8BIT (0, Regs.b.C)
  1114.   break;
  1115. case 0xC2:
  1116.   /*      SET 0,D */
  1117.  
  1118.   SET_8BIT (0, Regs.b.D)
  1119.   break;
  1120. case 0xC3:
  1121.   /*      SET 0,E */
  1122.  
  1123.   SET_8BIT (0, Regs.b.E)
  1124.   break;
  1125. case 0xC4:
  1126.   /*      SET 0,H */
  1127.  
  1128.   SET_8BIT (0, Regs.b.H)
  1129.   break;
  1130. case 0xC5:
  1131.   /*      SET 0,L */
  1132.  
  1133.   SET_8BIT (0, Regs.b.L)
  1134.   break;
  1135. case 0xC6:
  1136.   /*      SET 0,(HL) */
  1137.  
  1138.   x = mem_ReadByte (Regs.w.HL);
  1139.   SET_8BIT (0, x)
  1140.   mem_WriteByte (Regs.w.HL, x);
  1141.   break;
  1142. case 0xC7:
  1143.   /*      SET 0,A */
  1144.  
  1145.   SET_8BIT (0, Regs.b.A)
  1146.   break;
  1147. case 0xC8:
  1148.   /*      SET 1,B */
  1149.  
  1150.   SET_8BIT (1, Regs.b.B)
  1151.   break;
  1152. case 0xC9:
  1153.   /*      SET 1,C */
  1154.  
  1155.   SET_8BIT (1, Regs.b.C)
  1156.   break;
  1157. case 0xCA:
  1158.   /*      SET 1,D */
  1159.  
  1160.   SET_8BIT (1, Regs.b.D)
  1161.   break;
  1162. case 0xCB:
  1163.   /*      SET 1,E */
  1164.  
  1165.   SET_8BIT (1, Regs.b.E)
  1166.   break;
  1167. case 0xCC:
  1168.   /*      SET 1,H */
  1169.  
  1170.   SET_8BIT (1, Regs.b.H)
  1171.   break;
  1172. case 0xCD:
  1173.   /*      SET 1,L */
  1174.  
  1175.   SET_8BIT (1, Regs.b.L)
  1176.   break;
  1177. case 0xCE:
  1178.   /*      SET 1,(HL) */
  1179.  
  1180.   x = mem_ReadByte (Regs.w.HL);
  1181.   SET_8BIT (1, x)
  1182.   mem_WriteByte (Regs.w.HL, x);
  1183.   break;
  1184. case 0xCF:
  1185.   /*      SET 1,A */
  1186.  
  1187.   SET_8BIT (1, Regs.b.A)
  1188.   break;
  1189. case 0xD0:
  1190.   /*      SET 2,B */
  1191.  
  1192.   SET_8BIT (2, Regs.b.B)
  1193.   break;
  1194. case 0xD1:
  1195.   /*      SET 2,C */
  1196.  
  1197.   SET_8BIT (2, Regs.b.C)
  1198.   break;
  1199. case 0xD2:
  1200.   /*      SET 2,D */
  1201.  
  1202.   SET_8BIT (2, Regs.b.D)
  1203.   break;
  1204. case 0xD3:
  1205.   /*      SET 2,E */
  1206.  
  1207.   SET_8BIT (2, Regs.b.E)
  1208.   break;
  1209. case 0xD4:
  1210.   /*      SET 2,H */
  1211.  
  1212.   SET_8BIT (2, Regs.b.H)
  1213.   break;
  1214. case 0xD5:
  1215.   /*      SET 2,L */
  1216.  
  1217.   SET_8BIT (2, Regs.b.L)
  1218.   break;
  1219. case 0xD6:
  1220.   /*      SET 2,(HL) */
  1221.  
  1222.   x = mem_ReadByte (Regs.w.HL);
  1223.   SET_8BIT (2, x)
  1224.   mem_WriteByte (Regs.w.HL, x);
  1225.   break;
  1226. case 0xD7:
  1227.   /*      SET 2,A */
  1228.  
  1229.   SET_8BIT (2, Regs.b.A)
  1230.   break;
  1231. case 0xD8:
  1232.   /*      SET 3,B */
  1233.  
  1234.   SET_8BIT (3, Regs.b.B)
  1235.   break;
  1236. case 0xD9:
  1237.   /*      SET 3,C */
  1238.  
  1239.   SET_8BIT (3, Regs.b.C)
  1240.   break;
  1241. case 0xDA:
  1242.   /*      SET 3,D */
  1243.  
  1244.   SET_8BIT (3, Regs.b.D)
  1245.   break;
  1246. case 0xDB:
  1247.   /*      SET 3,E */
  1248.  
  1249.   SET_8BIT (3, Regs.b.E)
  1250.   break;
  1251. case 0xDC:
  1252.   /*      SET 3,H */
  1253.  
  1254.   SET_8BIT (3, Regs.b.H)
  1255.   break;
  1256. case 0xDD:
  1257.   /*      SET 3,L */
  1258.  
  1259.   SET_8BIT (3, Regs.b.L)
  1260.   break;
  1261. case 0xDE:
  1262.   /*      SET 3,(HL) */
  1263.  
  1264.   x = mem_ReadByte (Regs.w.HL);
  1265.   SET_8BIT (3, x)
  1266.   mem_WriteByte (Regs.w.HL, x);
  1267.   break;
  1268. case 0xDF:
  1269.   /*      SET 3,A */
  1270.  
  1271.   SET_8BIT (3, Regs.b.A)
  1272.   break;
  1273. case 0xE0:
  1274.   /*      SET 4,B */
  1275.  
  1276.   SET_8BIT (4, Regs.b.B)
  1277.   break;
  1278. case 0xE1:
  1279.   /*      SET 4,C */
  1280.  
  1281.   SET_8BIT (4, Regs.b.C)
  1282.   break;
  1283. case 0xE2:
  1284.   /*      SET 4,D */
  1285.  
  1286.   SET_8BIT (4, Regs.b.D)
  1287.   break;
  1288. case 0xE3:
  1289.   /*      SET 4,E */
  1290.  
  1291.   SET_8BIT (4, Regs.b.E)
  1292.   break;
  1293. case 0xE4:
  1294.   /*      SET 4,H */
  1295.  
  1296.   SET_8BIT (4, Regs.b.H)
  1297.   break;
  1298. case 0xE5:
  1299.   /*      SET 4,L */
  1300.  
  1301.   SET_8BIT (4, Regs.b.L)
  1302.   break;
  1303. case 0xE6:
  1304.   /*      SET 4,(HL) */
  1305.  
  1306.   x = mem_ReadByte (Regs.w.HL);
  1307.   SET_8BIT (4, x)
  1308.   mem_WriteByte (Regs.w.HL, x);
  1309.   break;
  1310. case 0xE7:
  1311.   /*      SET 4,A */
  1312.  
  1313.   SET_8BIT (4, Regs.b.A)
  1314.   break;
  1315. case 0xE8:
  1316.   /*      SET 5,B */
  1317.  
  1318.   SET_8BIT (5, Regs.b.B)
  1319.   break;
  1320. case 0xE9:
  1321.   /*      SET 5,C */
  1322.  
  1323.   SET_8BIT (5, Regs.b.C)
  1324.   break;
  1325. case 0xEA:
  1326.   /*      SET 5,D */
  1327.  
  1328.   SET_8BIT (5, Regs.b.D)
  1329.   break;
  1330. case 0xEB:
  1331.   /*      SET 5,E */
  1332.  
  1333.   SET_8BIT (5, Regs.b.E)
  1334.   break;
  1335. case 0xEC:
  1336.   /*      SET 5,H */
  1337.  
  1338.   SET_8BIT (5, Regs.b.H)
  1339.   break;
  1340. case 0xED:
  1341.   /*      SET 5,L */
  1342.  
  1343.   SET_8BIT (5, Regs.b.L)
  1344.   break;
  1345. case 0xEE:
  1346.   /*      SET 5,(HL) */
  1347.  
  1348.   x = mem_ReadByte (Regs.w.HL);
  1349.   SET_8BIT (5, x)
  1350.   mem_WriteByte (Regs.w.HL, x);
  1351.   break;
  1352. case 0xEF:
  1353.   /*      SET 5,A */
  1354.  
  1355.   SET_8BIT (5, Regs.b.A)
  1356.   break;
  1357. case 0xF0:
  1358.   /*      SET 6,B */
  1359.  
  1360.   SET_8BIT (6, Regs.b.B)
  1361.   break;
  1362. case 0xF1:
  1363.   /*      SET 6,C */
  1364.  
  1365.   SET_8BIT (6, Regs.b.C)
  1366.   break;
  1367. case 0xF2:
  1368.   /*      SET 6,D */
  1369.  
  1370.   SET_8BIT (6, Regs.b.D)
  1371.   break;
  1372. case 0xF3:
  1373.   /*      SET 6,E */
  1374.  
  1375.   SET_8BIT (6, Regs.b.E)
  1376.   break;
  1377. case 0xF4:
  1378.   /*      SET 6,H */
  1379.  
  1380.   SET_8BIT (6, Regs.b.H)
  1381.   break;
  1382. case 0xF5:
  1383.   /*      SET 6,L */
  1384.  
  1385.   SET_8BIT (6, Regs.b.L)
  1386.   break;
  1387. case 0xF6:
  1388.   /*      SET 6,(HL) */
  1389.  
  1390.   x = mem_ReadByte (Regs.w.HL);
  1391.   SET_8BIT (6, x)
  1392.   mem_WriteByte (Regs.w.HL, x);
  1393.   break;
  1394. case 0xF7:
  1395.   /*      SET 6,A */
  1396.  
  1397.   SET_8BIT (6, Regs.b.A)
  1398.   break;
  1399. case 0xF8:
  1400.   /*      SET 7,B */
  1401.  
  1402.   SET_8BIT (7, Regs.b.B)
  1403.   break;
  1404. case 0xF9:
  1405.   /*      SET 7,C */
  1406.  
  1407.   SET_8BIT (7, Regs.b.C)
  1408.   break;
  1409. case 0xFA:
  1410.   /*      SET 7,D */
  1411.  
  1412.   SET_8BIT (7, Regs.b.D)
  1413.   break;
  1414. case 0xFB:
  1415.   /*      SET 7,E */
  1416.  
  1417.   SET_8BIT (7, Regs.b.E)
  1418.   break;
  1419. case 0xFC:
  1420.   /*      SET 7,H */
  1421.  
  1422.   SET_8BIT (7, Regs.b.H)
  1423.   break;
  1424. case 0xFD:
  1425.   /*      SET 7,L */
  1426.  
  1427.   SET_8BIT (7, Regs.b.L)
  1428.   break;
  1429. case 0xFE:
  1430.   /*      SET 7,(HL) */
  1431.  
  1432.   x = mem_ReadByte (Regs.w.HL);
  1433.   SET_8BIT (7, x)
  1434.   mem_WriteByte (Regs.w.HL, x);
  1435.   break;
  1436. case 0xFF:
  1437.   /*      SET 7,A */
  1438.  
  1439.   SET_8BIT (7, Regs.b.A)
  1440.   break;
  1441.